package com.mycc.lease.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class BaseEntity implements Serializable {

    @Schema(description = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    /**
     * 忽略JSON序列化和反序列化时的属性
     *
     * 通过添加这个注解，可以防止在JSON转换过程中这个属性被序列化或反序列化。
     * 这对于某些情况下需要隐藏敏感信息或者减少不必要的数据传输是非常有用的。
     * 例如，一个用户对象中的密码字段通常不需要在API响应中暴露，此时就可以使用@JsonIgnore注解。
     */
    @JsonIgnore//在进行json中忽略该字段，不会被发送到前端
    private Date createTime;

    @Schema(description = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @JsonIgnore
    private Date updateTime;

    @Schema(description = "逻辑删除")
    @TableField("is_deleted")
    @JsonIgnore
    @TableLogic
    private Byte isDeleted;

}